/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.gobygang.client;

import com.gobygang.shared.ChitInfo;
import com.gobygang.shared.ContactInfo;
import com.gobygang.shared.LoginInfo;
import com.gobygang.shared.RouteInfo;
import com.gobygang.shared.TaxiGangInfo;
import com.gobygang.shared.TaxiGangInfo.LeaveResult;
import com.gobygang.shared.TaxiGanguserInfo;
import com.google.gwt.user.client.rpc.AsyncCallback;


/**
 *
 * @author Student
 */
public interface GobygangServiceAsync {

	public void getTaxiGangUser(LoginInfo loginInfo, AsyncCallback<TaxiGanguserInfo> async) ;
	public void getTaxiGangs(TaxiGangInfo taxiganginfo, AsyncCallback<TaxiGangInfo[]> async) ;
	public void getInvitation(String invitation, AsyncCallback<TaxiGangInfo> async) ;
	public void getPartner(String partner, AsyncCallback<RouteInfo> async) ;
	public void getRoute(String ref, AsyncCallback<RouteInfo> async) ;
	public void createPartner(RouteInfo partner, AsyncCallback<Void> async) ;
	public void cancelWishRoute(String wishRouteId, AsyncCallback<Void> async) ;
	public void getMyTaxiGangs(LoginInfo loginInfo, AsyncCallback<TaxiGangInfo[]> async) ;
	public void createTaxiGang(TaxiGangInfo taxiganginfo, LoginInfo loginInfo, ChitInfo info,AsyncCallback<TaxiGangInfo> async) ;
	public void joinTaxiGang(TaxiGangInfo taxiganginfo, LoginInfo loginInfo, ChitInfo info, AsyncCallback<Void> async) ;
	public void leaveTaxiGang(TaxiGangInfo taxiganginfo, LoginInfo loginInfo, AsyncCallback<LeaveResult> async) ;
	public void award(TaxiGangInfo taxiganginfo, LoginInfo loginInfo, AsyncCallback<Void> async) ;
	public void deleteTaxiGang(TaxiGangInfo taxiganginfo, AsyncCallback<Void> async) ;
	public void addMessage(TaxiGangInfo taxiganginfo, LoginInfo loginInfo,String message,  AsyncCallback<Void> async) ;

	public void deleteAllTaxiGangs(AsyncCallback<Void> async) ;
	public void deleteAllTaxiGangUsers(AsyncCallback<Void> async) ;

	public void logInfo(String infoMessage,AsyncCallback<Void> async);
	public void sendContactInfo(ContactInfo info,AsyncCallback<Void> async);
	public void runCron(String cron,AsyncCallback<Void> async);
	
	public void createWishRoute(TaxiGangInfo taxiganginfo, LoginInfo loginInfo, AsyncCallback<Void> async);


}
